<?php

namespace app\common\library;

/**
 * 执行结果数据定义
 */
class Result
{
    /**
     * 状态码 1：通用的正常，0：通用的错误，其它皆为执行有误的情况
     * @var int
     */
    protected int $code = 1;
    /**
     * 提示信息
     * @var string
     */
    protected string $msg = 'ok';
    /**
     * 数据
     * @var mixed|array
     */
    protected mixed $data = [];

    public function __construct(int $code = 1, string $msg = 'ok', mixed $data = [])
    {
        $this->code = $code;
        $this->msg = $msg;
        $this->data = $data;
    }

    /**
     * 获取code
     * @return int
     */
    public function getCode(): int
    {
        return $this->code;
    }

    /**
     * 获取错误信息
     * @return string
     */
    public function getMsg(): string
    {
        return $this->msg;
    }

    /**
     * 获取数据
     * @return array|mixed
     */
    public function getData(): mixed
    {
        return $this->data;
    }

    /**
     * 获取结果的全部信息
     * @return array
     */
    public function getResult(): array
    {
        return [
            'code' => $this->getCode(),
            'msg' => $this->getMsg(),
            'data' => $this->getData(),
        ];
    }

    /**
     * 是否执行正常
     * @return bool
     */
    public function isSuccess(): bool
    {
        return $this->code === 1;
    }

}